package com.fr.report.core;

import com.fr.base.ColumnRow;
import com.fr.report.script.Calculator;
import com.fr.report.script.core.parser.ColumnRowRange;
import com.fr.report.write.ValueVerifier;
import java.util.List;

public abstract interface FormReport
{
  public abstract ColumnRow appendData(ColumnRow paramColumnRow, boolean paramBoolean, int paramInt)
    throws FormException;

  public abstract ColumnRow simpleAppendData(ColumnRow paramColumnRow, boolean paramBoolean, int paramInt)
    throws FormException;

  public abstract void simpleDeleteData(ColumnRow paramColumnRow)
    throws FormException;

  public abstract void deleteData(ColumnRow paramColumnRow)
    throws FormException;

  public abstract void unDeleteData(ColumnRow paramColumnRow)
    throws FormException;

  public abstract ValueVerifier[] checkValueVerifiers();

  public abstract List getExtendedColumnRowList(ColumnRow[] paramArrayOfColumnRow, ColumnRow paramColumnRow);

  public abstract int setCurrentColumnRow(ColumnRow[] paramArrayOfColumnRow, ColumnRow paramColumnRow, Calculator paramCalculator, Action paramAction)
    throws Exception;

  public abstract Object resolveColumnRowRange(ColumnRowRange paramColumnRowRange, ColumnRow paramColumnRow);

  public static abstract interface Action
  {
    public abstract void run(int paramInt, Calculator paramCalculator)
      throws Exception;
  }
}